博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端知识之Ajax
阅读量:6178 次
发布时间:2019-06-21

本文共 1988 字,大约阅读时间需要 6 分钟。

Asynchronous JavaScript and XML

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。是在不重新加载整个页面的情况下,与服务器交换数据并异步更新部分网页的技术。

1282009-20190425153902425-998678260.png

在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。

工作原理:

XMLHttpRequest对象 在后台,异步地与服务器交换数据。
1282009-20190425153826735-596550937.png

原生Ajax创建

最早是IE5中以组件的形式实现的。由于非W3C标准,实现方式不统一:

IE5、6它被实现为一个ActiveX对象;

其他浏览器把它实现为一个JavaScript对象。

但属性和方法访问是兼容的。

function getHttpObject(){    var xhr  = false;    if(window.XMLHttpRequest){        xhr = new XMLHttpRequest();    }else if(window.ActiveXObject){        xhr = new ActiveXObject("Microsoft.XMLHttp");    }    return xhr;}

常用方法、属性

open("method","url")

建立对服务器的调用。url既可以是相对的也可以是绝对的。

send(content)

向服务器发送请求。

setRequestHeader("header","value")

把指定头部设置为所提供的值,比如post请求需要设置setRequestHeader("ContentType","application/x-www-form-urlencoded")告诉服务器正在发送数据,而且该数据已经符合URL编码了。它

之前需要调用open()方法。

readState:请求的状态,0未初始化,1正在加载,2请求已接收,3请求处理中,4响应完成。

onreadystatechange:每个状态改变都会触发这个事件处理器。服务器触发的。
status:服务器的HTTP状态码。
responseXML:服务器响应返回XML类型的数据,文本会存储在该对象中,这个对象可以解析为DOM对象。
responseText:服务器响应HTML、Json类型的数据,文本会存储在该对象中。

服务器返回数据类型的选择

1282009-20190425232126606-574437571.png

jQuery中的Ajax

编写常规的 AJAX 代码并不容易,因为不同的浏览器对 AJAX 的实现并不相同。这意味着您必须编写额外的代码对浏览器进行测试。不过,jQuery 团队为我们解决了这个难题,我们只需要一行简单的代码,就可以实现 AJAX 功能。jQuery对Ajax操作进行了封装。

1282009-20190425232554677-1234632796.png

load()方法

格式:load(url[,data][,callback])

url是请求的地址,后面可以加选择器,对返回的html格式数据筛选;data是发送给服务器的k-v数据;callback请求完成(无论成功失败)后的回调函数。

$("#content").load(this.href,args);
将返回结果直接插入到id=content标签的值中。

get()方法

格式:get(url[,data][,callback][,type])

url是请求的地址;data是发送给服务器的k-v数据;callback请求完成(无论成功失败)后会被触发的的回调函数,响应结果将返回到回调函数的参数里。

type是返回数据的格式,如html、xml、json等。

$.get(url,{"time":new Date()},function(data){                var name = $(data).find("name").text();                var website = $(data).find("website").text();                var email = $(data).find("email").text();                                $("#details").empty()                     .append("

" +name + "

") .append(" "+website+""); });

xml数据解析。

post()同。

getJSON()方法

get(url[,data][,callback],"JSON")一样。

转载于:https://www.cnblogs.com/xiaobingzi/p/10769058.html

你可能感兴趣的文章
机器学习入门概览
查看>>
作为一个编程新手,我再也不怕Flink迷了我的眼!
查看>>
如何通过以太坊智能合约来进行众筹(ICO)
查看>>
分析JQuery中的'extend'
查看>>
双11黑科技,阿里百万级服务器自动化运维系统StarAgent揭秘
查看>>
聊聊sentinel的SimpleHttpCommandCenter
查看>>
[react-control-center tutorial 3] 数据驱动视图的灵魂setState
查看>>
课程 3: 线程与并行
查看>>
小程序大转盘红包雨营销组件
查看>>
PAT A1030 动态规划
查看>>
「澳洋主数据项目」主数据促企业变革
查看>>
OKR与Scrum如何强强联手
查看>>
iOS | NSProxy
查看>>
通谷易懂区块链技术
查看>>
VSCode软件介绍
查看>>
gradle-学习笔记(2)-多项目构建
查看>>
前端面试CSS
查看>>
春招必看一位老学长的真实互联网校招求职心路历程~
查看>>
以太坊是什么 - 以太坊开发入门指南
查看>>
【BATJ面试必会】Java 基础篇
查看>>